package com.wing.cabinet.model.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.wing.cabinet.model.entity.CellInventorySpace;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 超额申请产品表VO
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class AboveTheQuotaApplyProductVO {

    /**
     * 刀柜编号
     */
    private String cabCode;
    /**
     * 创建者ID
     */
    private Long id;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    protected LocalDateTime createTime;

    /**
     * 创建者ID
     */
    private Long creator;

    /**
     * 创建者名称
     */
    private String creatorName;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonIgnore
    protected LocalDateTime updateTime;

    /**
     * 修改者
     */
    protected Long modifier;

    /**
     * 修改者名称
     */
    private String modifierName;

    /**
     * 是否已删除
     */
    protected Boolean isDeleted;

    /**
     * 备注
     */
    protected String remark;

    /**
     * 企业编号
     */
    private String enterpriseCode;

    /**
     * 领新申请id
     */
    private Long aboveTheQuotaApplyId;

    /**
     * 产品编号
     */
    private String skuCode;

    /**
     * 单位数量
     */
    private Integer quantity;

    /**
     * 包装数量
     */
    private Integer quantityPack;

    /**
     * 单价
     */
    private BigDecimal price;

    /**
     * 总价
     */
    private BigDecimal totalPrice;

    /**
     * 包装规格id
     */
    private Long packId;

    /**
     * 换算率
     */
    private Integer quantityPackUnit;

    /**
     * 包装规格名称
     */
    private String packName;

    /**
     * 包装单位
     */
    private String packUnitName;

    /**
     * sku名称
     */
    private String skuName;

    /**
     * 产品系列编号
     */
    private String productCode;

    /**
     * 规格码
     */
    private String specCode;

    /**
     * 产品类型名称
     */
    private String productTypeName;

    /**
     * 领新产品的柜子货道
     */
    private List<CellInventorySpace> inventorySpaceList;

    /**
     *限制数量
     */
    private Integer number;

    /**
     *实际限制数量
     */
    private Integer realNumber;

    /**
     * 限制金额
     */
    private BigDecimal amount;

    /**
     * 实际限制金额
     */
    private BigDecimal realAmount;

    /**
     * 实际申请数量
     */
    private Integer acturlQuantity;

    /**
     * 实际申请金额
     */
    private BigDecimal acturlTotalPrice;

}
